
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en-US">

<!--
	Copyright (c) 1999-2013 by Digital Mars
	All Rights Reserved
	Written by Walter Bright
	http://www.digitalmars.com
  -->

<head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>Digital Mars Digital Mars C/C++ Version Info</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="print.css" media="print">
</head>

<body>
<div id="heading">
<table>
<tr>
<td>
	<a href="http://www.digitalmars.com/"><img src="dmlogo.gif" width="270" height="53" style="border-style:none" alt="www.digitalmars.com" /></a>
<td valign="bottom">
	<a href="index.html" title="digitalmars.com"><img src="home.png" border=0></a>
	&nbsp; <a href="faq.html" title="frequently asked questions"><img src="faq.png" border=0></a>
	&nbsp; <a href="advancedsearch.html" title="Search web site"><img src="search.png" border=0></a>
	&nbsp; <a href="NewsGroup.html" title="Digital Mars News Groups"><img src="news.png" border=0></a>
	&nbsp; <a href="shop.html" title="get C/C++ Development System"><img src="buy.png" border=0></a>
	&nbsp; <a href="download/freecompiler.html" title="download C/C++ compiler"><img src="download.png" border=0></a>
	&nbsp; <a href="bibliography.html" title="books we recommend"><img src="books.png" border=0></a>
	&nbsp; <a href="contact.html" title="email Digital Mars"><img src="contact.png" border=0></a>
	&nbsp; <a href="gift/index.html" title="Cool Stuff"><img src="gifts.png" border=0></a>
	&nbsp; <a href="d/index.html" title="D programming language"><img src="d.png" border=0></a>
</table>
	<div id="lastupdate">Last update Thu Aug  1 12:49:47 2013
</div>
</div>

<!-- Generated by Ddoc from changelog.d -->



<div id="navigation">
  
    <div class="navblock">
    
	<form method="get" action="http://www.google.com/search">
	<div style="text-align:center">
	<input id="q" name="q" size="10" value="Search" onFocus='if(this.value == "Search"){this.value="";}'>
	<input type="hidden" id="domains" name="domains" value="www.digitalmars.com">
	<input type="hidden" id="sitesearch" name="sitesearch" value="www.digitalmars.com/d">
	<input type="hidden" id="sourceid" name="sourceid" value="google-search">
	<input type="submit" id="submit" name="submit" value="Go">
	</div>
	</form>


    </div>


  
    <div class="navblock">
    <h2>Documentation</h2>
    <ul>    <li><a href="ctg/ctg.html">Compiler &amp; Tools Guide</a></li>

    <li><a href="rtl/rtl.html">Runtime Library Reference</a></li>

    <li><a href="ugr/ugr.html">IDDE Reference</a></li>

    <li><a href="changelog.html">Change Log</a></li>

    <li><a href="faq.html">FAQ</a></li>

    </ul>
    </div>

    <div class="navblock">
    <h2>Downloads</h2>
    <ul>    <li><a href="download/dmcpp.html">C/C++ compiler</a></li>

    <li><a href="d/2.0/dcompiler.html">D compiler</a></li>

    <li><a href="dscript/index.html">DMDScript compiler</a></li>

    <li><a href="ftp://ftp.digitalmars.com/me.zip">MicroEmacs</a></li>

    <li><a href="user/mtask.html">MTask</a></li>

    </ul>
    </div>

    <div class="navblock">
    <h2>Community</h2>
    <ul>    <li><a href="NewsGroup.html">Forums</a></li>

    </ul>
    </div>

    <div class="navblock">
    <h2>Other</h2>
    <ul>    <li><a href="bibliography.html">Bookshelf</a></li>

    <li><a href="features.html">Features</a></li>

    <li><a href="contact.html">Contact</a></li>

    
    <li><a href="partners.html">Friends</a></li>

    <li><a href="related.html">Related Sites</a></li>

    <li><a href="acknowledgements.html">Acknowledgements</a></li>

    <li><a href="consultants.html">Consultants</a></li>

    <li><a href="sitemap.html">Site Map</a></li>

    <li><a href="http://www.walterbright.com">Walter Bright</a></li>

    <li><a href="http://www.classicempire.com">Empire</a></li>

    </ul>
    </div>

    <div class="navblock">
    
<script src="http://www.gmodules.com/ig/ifr?url=http://www.google.com/ig/modules/translatemypage.xml&up_source_language=en&w=160&h=60&title=&border=&output=js"></script>

    <hr>
    
<script type="text/javascript"><!--
/**/google_ad_client = "pub-5628673096434613";
/**/google_alternate_color = "eeeeee";
/**/google_ad_width = 120;
/**/google_ad_height = 90;
/**/google_ad_format = "120x90_0ads_al_s";
/**/google_ad_channel ="3448066137";
/**/google_color_border = "000000";
/**/google_color_bg = "F0F0F0";
/**/google_color_link = "0000FF";
/**/google_color_url = "008000";
/**/google_color_text = "000000";
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>


    </div>


</div>
<div id="content">
  <h1>Digital Mars C/C++ Version Info</h1>
  
<ul>
	<li> Download <A HREF="ftp://ftp.digitalmars.com/dmc.zip" title="download dmc.zip">latest version</a> for Win32.</li>
	<li>  What's new for <a href="#new857">C/C++ 8.57</a> </li>
	<li>  What's new for <a href="#new856">C/C++ 8.56</a> </li>
	<li>  What's new for <a href="#new855">C/C++ 8.55</a> </li>
	<li>  What's new for <a href="#new854">C/C++ 8.54</a> </li>
	<li>  What's new for <a href="#new853">C/C++ 8.53</a> </li>
	<li>  What's new for <a href="#new852">C/C++ 8.52</a> </li>
	<li>  What's new for <a href="#new851">C/C++ 8.51</a> </li>
	<li>  What's new for <a href="#new850">C/C++ 8.50</a> </li>
	<li>  What's new for <a href="#new849">C/C++ 8.49</a> </li>
	<li>  What's new for <a href="#new848">C/C++ 8.48</a> </li>
	<li>  What's new for <a href="#new847">C/C++ 8.47</a> </li>
	<li>  What's new for <a href="#new846">C/C++ 8.46</a> </li>
	<li>  What's new for <a href="#new845">C/C++ 8.45</a> </li>
	<li>  What's new for <a href="#new844">C/C++ 8.44</a> </li>
	<li>  What's new for <a href="#new843">C/C++ 8.43</a> </li>
	<li>  What's new for <a href="#new842">C/C++ 8.42</a> </li>
	<li>  What's new for <a href="#new841">C/C++ 8.41</a> </li>
	<li>  What's new for <a href="#new840">C/C++ 8.40</a> </li>
	<li>  What's new for <a href="#new839">C/C++ 8.39</a> </li>
	<li>  What's new for <a href="#new838">C/C++ 8.38</a> </li>
	<li>  What's new for <a href="#new837">C/C++ 8.37</a> </li>
	<li>  What's new for <a href="#new836">C/C++ 8.36</a> </li>
	<li>  What's new for <a href="#new835">C/C++ 8.35</a> </li>
	<li>  What's new for <a href="#new834">C/C++ 8.34</a> </li>
	<li>  What's new for <a href="#new833">C/C++ 8.33</a> </li>
	<li>  What's new for <a href="#new832">C/C++ 8.32</a> </li>
	<li>  What's new for <a href="#new831">C/C++ 8.31</a> </li>
	<li>  What's new for <a href="#new830">C/C++ 8.30</a> </li>
	<li>  What's new for <a href="#new829">C/C++ 8.29</a> </li>
	<li>  What's new for <a href="#new828">C/C++ 8.28</a> </li>
	<li>  What's new for <a href="#new827">C/C++ 8.27</a> </li>
	<li>  What's new for <a href="#new826">C/C++ 8.26</a> </li>
	<li>  What's new for <a href="#new825">C/C++ 8.25</a> </li>
	<li>  What's new for <a href="#new823">C/C++ 8.23</a> </li>
	<li>  What's new for <a href="#new822">C/C++ 8.22</a> </li>
	<li>  What's new for <a href="#new820">C/C++ 8.20</a> </li>
	<li>  What's new for <a href="#new81e">C/C++ 8.1e</a> </li>
	<li>  What's new for <a href="#new81d">C/C++ 8.1d</a> </li>
	<li>  What's new for <a href="#new81c">C/C++ 8.1c</a> </li>
	<li>  What's new for <a href="#new81A">C/C++ 8.1A</a> </li>
	<li>  What's new for <a href="#new818">C/C++ 8.18</a> </li>
	<li>  What's new for <a href="#new817">C/C++ 8.17</a> </li>
	<li>  What's new for <a href="#new816">C/C++ 8.16</a> </li>
	<li>  What's new for <a href="#new815">C/C++ 8.15</a> </li>
	<li>  What's new for <a href="#new813">C/C++ 8.13</a> </li>
	<li>  What's new for <a href="#new812">C/C++ 8.12</a> </li>
	<li>  What's new for <a href="#new810">C/C++ 8.10</a> </li>
	<li>  What's new for <a href="#new80">C/C++ 8.0</a> </li>
	<li>  What's new for <a href="#new76">C/C++ 7.6</a> </li>
	<li>  What's new for <a href="#new75">C/C++ 7.5</a> </li>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new857">WHAT'S NEW FOR C/C++ 8.57</a></h3>


<small><i>Aug 1, 2013</i></small>

<ul>	<li>New/Changed</li>
	<ul>	<li>Numerous code gen improvements, including faster switch tables
	and divides.</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new856">WHAT'S NEW FOR C/C++ 8.56</a></h3>


<small><i>Nov 9, 2012</i></small>

<ul>	<li>C++0x</li>
	<ul>	</ul>

	<li>New/Changed</li>
	<ul>	</ul>

	<li>Bug fixes</li>
	<ul>8796 - Optimizer bug on 64bit: *p++=1 where p is a parameter
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=8986">Bugzilla 8986</a>: The PVS-Studio analyzer has something for you</li>
8987 - Compiling using -O -release options yield Internal error: backend\cgcod.c 1663
9171 - error optimization of expression
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new855">WHAT'S NEW FOR C/C++ 8.55</a></h3>


<small><i>Oct 20, 2012</i></small>

<ul>	<li>C++0x</li>
	<ul>	</ul>

	<li>New/Changed</li>
	<ul>	</ul>

	<li>Bug fixes</li>
	<ul>	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=89">Bugzilla 89</a>
: InterlockedCompareExchange has incorrect signature in winbase.h</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=6505">Bugzilla 6505</a>: Wrong code for expression involving 8 floats, only with -O</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=8840">Bugzilla 8840</a>: calculating minimum of longs with following comparison compiles to wrong code when enabling the optimizer</li>
	<li>Fixed bit rot in building library</li>
	<li>Fixed uninitialized field</li>
	<li>tmpfile() now uses TEMP environment variable</li>
	<li>MAKE now handles spaces in paths</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new854">WHAT'S NEW FOR C/C++ 8.54</a></h3>


<small><i>Aug 21, 2010</i></small>

<ul>	<li>C++0x</li>
	<ul>	</ul>

	<li>New/Changed</li>
	<ul>	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=5741">Bugzilla 5741</a>: Add the SYSCALL and SYSRET opcodes to the inline assembler</li>
	</ul>

	<li>Bug fixes</li>
	<ul>	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=2436">Bugzilla 2436</a>: Unexpected OPTLINK termination EIP = 00425303 with /co</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=3372">Bugzilla 3372</a>: optlink silently mistreats object files with more than 16384 symbols</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=3681">Bugzilla 3681</a>: ICE(go.c): when function takes too long to optimize, only with -O.</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=4275">Bugzilla 4275</a>: Unexpected optlink termination when 'export' attribute is missing</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=4379">Bugzilla 4379</a>: ICE(blockopt.c): foreach over huge tuple, only with -O</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=4486">Bugzilla 4486</a>: CodeView debug info should contain absolute path names</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=5294">Bugzilla 5294</a>: -O optimization breaks for loop</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=5455">Bugzilla 5455</a>: ICE(cgcod.c): Optimization (register allocation?) regression in DMD 1.065</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=5581">Bugzilla 5581</a>: [64-bit] Wrong code with bitwise operations on bools</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=5670">Bugzilla 5670</a>: Optlink 8.00.11 crash</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=5672">Bugzilla 5672</a>: ICE(cod2.c): incorrect optimization of (long &amp;1) == 1</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new853">WHAT'S NEW FOR C/C++ 8.53</a></h3>


<small><i>Dec 26, 2010</i></small>

<ul>	<li>C++0x</li>
	<ul>	</ul>

	<li>New/Changed</li>
	<ul>	</ul>

	<li>Bug fixes</li>
	<ul>	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=79">Bugzilla 79</a>
: Error comparing double to long long int's.</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=4009">Bugzilla 4009</a>: OPTLINK ruins the day yet again</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=4443">Bugzilla 4443</a>: Optimizer produces wrong code for || or &amp;&amp; with struct arrays</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=4645">Bugzilla 4645</a>: to!string(const char*) in library causes Optlink to issue warning</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new852">WHAT'S NEW FOR C/C++ 8.52</a></h3>


<small><i>Apr 24, 2010</i></small>

<ul>	<li>C++0x</li>
	<ul>	<li>Added keywords</li>
	<li>Added unicode string literals and types</li>
	<li>Added raw string literals, except for "undoing" backslash and trigraphs</li>
	<li>Disallow surrogate pairs in universal character names</li>
	<li>Added <tt>static_assert</tt>	
 declarations</li>
	<li>Added <tt>declspec</tt>	
</li>
	<li>Added <tt>nullptr</tt>	
</li>
	<li>Added partial support for <tt>thread_local</tt>	
</li>
	</ul>

	<li>New/Changed</li>
	<ul>	<li>Added spell checker for undefined symbols</li>
	</ul>

	<li>Bug fixes</li>
	<ul>	<li>Changed <b>FLT_EVAL_METHOD</b> to 2, and moved it to <tt>float.h</tt>	
</li>
	<li>Changed <b>float_t</b> and <b>double_t</b> to <tt>long double</tt>	</li>
	<li>Fix codegen issue with returning double complex numbers</li>
	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=7">Bugzilla 7</a>
: -A99 switch makes some math functions inaccessible</li>
	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=45">Bugzilla 45</a>
: Internal error: cgcod 1594</li>
	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=46">Bugzilla 46</a>
: Constant folding with long doubles</li>
	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=47">Bugzilla 47</a>
: Internal error: cg87 3316</li>
	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=48">Bugzilla 48</a>
: Internal error: cgreg 784</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=3558">Bugzilla 3558</a>: Optimizer bug results in false if condition being taken</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=3633">Bugzilla 3633</a>: Optimizer causes access violation</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=3736">Bugzilla 3736</a>: corrupted struct returned by function with optimizations (-O)</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new851">WHAT'S NEW FOR C/C++ 8.51</a></h3>


<small><i>Dec 6, 2009</i></small>

<ul>	<li>New/Changed</li>
	<ul>	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=2888">Bugzilla 2888</a>: speedup for float * 2.0</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=2905">Bugzilla 2905</a>: Faster +-*/ involving a floating-pointing literal</li>
	<li>Added asinh, acosh, and atanh</li>
	<li>Increase max value of -HP switch from -HP99 to -HP299</li>
	</ul>

	<li>Bug fixes</li>
	<ul>	<li>Improved long divide performance</li>
	<li>Fixed bug with premature destruction of const ref temporaries.</li>
	<li><a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=36">Bugzilla 36</a>
: ambiguous reference to std::sqrt</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=675">Bugzilla 675</a>: %a format has an out-by-1 bug for denormals.</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=708">Bugzilla 708</a>: inline assembler: "CVTPS2PI mm, xmm/m128" fails to compile</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=709">Bugzilla 709</a>: inline assembler: "CVTPD2PI mm, xmm/m128" fails to compile</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=1194">Bugzilla 1194</a>: fcmov* emmits incorrect code</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=2923">Bugzilla 2923</a>: -O generates bad code for ?:</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=2697">Bugzilla 2697</a>: Cast of float function return to ulong or uint gives bogus value</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=3078">Bugzilla 3078</a>: NaN reported as equal to zero</li>
	<li><a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=3521">Bugzilla 3521</a>: Optimized code access popped register</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new850">WHAT'S NEW FOR C/C++ 8.50</a></h3>


<small><i>Aug 19, 2007</i></small>

<ul>	<li>New/Changed</li>
	<ul>	<li>Increase max value of -HP switch from -HP99 to -HP299</li>
	</ul>

	<li>Bug fixes</li>
	<ul>	<li>Fixed bug in _nmalloc() where allocations larger than 0x8000 failed.</li>
	<li>Removed some wcs functions from stdlib.h (they're in wchar.h)</li>
	<li>Corrected DECIMAL_DIG value in float.h</li>
	<li>Corrected Internal error cgcod.c 1498</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=608">c++.beta/608</a> (also need to use -HP299 switch)</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=619">c++.beta/619</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=628">c++.beta/628</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5347">c++/5347</a>: Failure to prefer more-specific (non-template) function</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5349">c++/5349</a>: Appears that template syntax is checked before macro expansion!</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5353">c++/5353</a>: elaborated type specifiers and namespaces</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5354">c++/5354</a>: namespaces and anonymous namespaces</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5355">c++/5355</a></li>
	<li>Fixed <a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=365">Bugzilla 365</a></li>
	<li>Fixed <a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=431">Bugzilla 431</a></li>
	<li>Fixed <a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=794">Bugzilla 794</a></li>
	<li>Fixed <a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=1150">Bugzilla 1150</a>: Compiler creates wrong code</li>
	<li>Fixed <a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=1448">Bugzilla 1448</a>: UTF-8 output to console is seriously broken</li>

	<li>Fixed <a href="http://www.digitalmars.com/d/archives/c++/beta/596.html">c++.beta 596</a>: Digital Mars takes into account template parameter *names* as if they were part of the signature</li>
	<li>Fixed <a href="http://www.digitalmars.com/d/archives/c++/beta/bug_dmc_8.50.3n_Internal_error_struct_2169_660.html">c++.beta 660</a>: dmc 8.50.3n Internal error: struct 2169</li>
	<li>Fixed <a href="http://www.digitalmars.com/d/archives/c++/BUG_typedef_not_visible_for_friend_5533.html">c++ 5533</a>: BUG: typedef not visible for friend?</li>
	<li>Fixed <a href="http://www.digitalmars.com/d/archives/c++/BUG_typedef_not_visible_for_friend_5533.html#N5534">c++ 5534</a>: BUG: friend functions</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new849">WHAT'S NEW FOR C/C++ 8.49</a></h3>


<small><i>Aug 12, 2006</i></small>

<ul>	<li>New/Changed</li>
	<ul>	</ul>

	<li>Bug fixes</li>
	<ul>	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.command-line&artnum=681">c++.command-line/681</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=511">c++.beta/511</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=526">c++.beta/526</a> #1</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=526">c++.beta/526</a> #2</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=526">c++.beta/526</a> #3</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=530">c++.beta/530</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=546">c++.beta/546</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=547">c++.beta/547</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=549">c++.beta/549</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=562">c++.beta/562</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=563">c++.beta/563</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=564">c++.beta/564</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=565">c++.beta/565</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=569">c++.beta/569</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=572">c++.beta/572</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=574">c++.beta/574</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=581">c++.beta/581</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5174">c++/5174</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5176">c++/5176</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5178">c++/5178</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5179">c++/5179</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5180">c++/5180</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5181">c++/5181</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5182">c++/5182</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5183">c++/5183</a></li>
	<li>Fixed Dstress bug_cg87_2393_A</li>
	<li>Fixed <a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=121">Bugzilla 121</a></li>
	<li>Added function fabsl, sqrtl, remquol, rintl</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new848">WHAT'S NEW FOR C/C++ 8.48</a></h3>


<small><i>May 4, 2006</i></small>

<ul>	<li>New/Changed</li>
	<ul>	<li>Updated sqltypes.h</li>
	<li>Implemented compiler intrinsics to support traits</li>
	</ul>

	<li>Bug fixes</li>
	<ul>	<li>Fixed Internal error: cod2 4221</li>
	<li>Fixed Internal error: cg87 261</li>
	<li>Fixed Internal error: cg87 1297</li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.bugs&artnum=6118">D.bugs/6118</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.bugs&artnum=6662">D.bugs/6662</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=485">c++.beta/485</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=487">c++.beta/487</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=489">c++.beta/489</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=493">c++.beta/493</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=495">c++.beta/495</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=496">c++.beta/496</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=498">c++.beta/498</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=499">c++.beta/499</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=500">c++.beta/500</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=502">c++.beta/502</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=508">c++.beta/508</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=512">c++.beta/512</a></li>
	<li>Fixed winspool.lib per <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5125">c++/5125</a></li>
	<li>Fixed coffimplib.exe per <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5125">c++/5125</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=5128">c++/5128</a></li>
	<li>Fixed <a href="http://d.puremagic.com/bugzilla/show_bug.cgi?id=86">Bugzilla 86</a></li>
	<li>Now supports <b>static inline</b> functions</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new847">WHAT'S NEW FOR C/C++ 8.47</a></h3>


<small><i>Jan 22, 2006</i></small>

<ul>	<li>Bug fixes</li>
	<ul>	<li>Fixed corrupt uuid.lib.</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new846">WHAT'S NEW FOR C/C++ 8.46</a></h3>


<small><i>Jan 14, 2006</i></small>

<ul>
	<li> New/Changed
	<ul>
	<li> Adapted Don Clugston's implementation of lgamma() and tgamma().
	<li>Updated import libraries, uuid.lib.</li>
	<li>Added <a href="http://www.digitalmars.com/ctg/coffimplib.html">coffimplib</a>
	  tool to convert COFF import libraries to OMF.</li>
	</ul>
	<li> Bug fixes
	<ul>
	<li> Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4876">c++/4876</a>.
	<li> Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4881">c++/4881</a>.
	<li> Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4909">c++/4909</a>.
	<li> Fixed crash compiling stlsoft/method_properties.hpp.
	<li> Fixed preprocessor crash on missing newline on last line.
	<li> Token concatenation for L"string" now works.
	<li> Fixed missing preprocessed output when macro ends source
	file without ().
	<li>Folded in fixes from DMD.</li>
	<li>Fixed problem with typing of integer literals.</li>
	</ul>
</ul>

<hr><!-- ======================================================= -->
<h3><a name="new845">WHAT'S NEW FOR C/C++ 8.45</a></h3>

<small><i>Sep 3, 2005</i></small>

<ul>
	<li> New/Changed
	<ul>
	<li> Modified class layout for multiple inheritance of empty
	base classes, so they take up a minimum of one byte. This is
	so that pointer-to-members in different base classes can be
	properly distinguished.
	<li> Added <b>-Ad</b> switch which goes back to one-level name
	lookup for compatibility with legacy C++ code.
	Some examples:
		<ul>
		<li> For any use with the older STL implementation in <b>\dm\stl</b>.
		<li> For <b>\dm\stlport\stlport\stl\_deque.h</b>, change line 429 from:<br>
		    <tt>allocator_type get_allocator() const { return _M_map_size; }</tt><br>
		to:<br>
		    <tt>allocator_type get_allocator() const { return <span style="color:red">this-&gt;</span>_M_map_size; }</tt>
		<li> Bruce Eckel's "<i>Thinking in C++</i>" example <tt>C05/Sortable.cpp</tt>.
		</ul>
	<li> Added forward referencing in class member function default arguments.
	<li> Now passes all tests in
	<a href="http://www.cs.clemson.edu/~malloy/projects/ddj2/ddj2.html">Dr. Dobb's
	Conformance Comparison of C++ Compilers: Oct 2003</a>.
	</ul>

	<li> Bug fixes
	<ul>
	<li> Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.bugs&artnum=4761">D.bugs/4761</a>
	     (as it applies to the C++ compiler as well) </li>
	<li> Fixed problem with exception specifications on pointer to function
	declarations</li>
	<li> Fixed overloading problem with type vs ref type.</li>
	<li> Fixed <a
	href="http://cmeerw.org/prog/freecpp/partial_ordering_class_templates.html">partial
	class ordering bug</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4781">c++/4781</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4782">c++/4782</a></li>
	</ul>
</ul>


<hr><!-- ======================================================= -->
<h3><a name="new844">WHAT'S NEW FOR C/C++ 8.44</a></h3>

<small><i>July 29, 2005</i></small>

<ul>
	<li> New/Changed
	<ul>
	<li> Implemented C++ DR337
	<li> Added -Ai switch to enable implicit casting from void* in C++
	for legacy compatibility (such is not C++98 compliant).
	<li> C++ string literals are now typed as const.
	<li> Supports two-level template name lookup.
	</ul>
<ul>
</ul>
	<li> Bug fixes
	<ul>
	<li> Fixed template default argument instantiation context.
	<li> Fixed try-catch handling for template function bodies.
	<li> Fixed SFINAE problem with arrays of functions.
	<li> Fixed internal error template 2643
	<li> Fixed problem with strtold() and non-ascii chars.
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4682">c++/4682</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4689">c++/4689</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4690">c++/4690</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4694">c++/4694</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4695">c++/4695</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4693">c++/4693</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4705">c++/4705</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++&artnum=4709">c++/4709</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.command-line&artnum=532">c++.command-line/532</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.command-line&artnum=536">c++.command-line/536</a></li>
	<li>Fixed <a href="http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.command-line&artnum=556">c++.command-line/556</a></li>
	<li> Fixed bug in __FUNC__, __FUNCTION__, and __PRETTY_FUNCTION__.
	</ul>
<ul>
</ul>
</ul>


<hr><!-- ======================================================= -->
<h3><a name="new843">WHAT'S NEW FOR C/C++ 8.43</a></h3>

<small><i>Apr 8, 2005</i></small>

<ul>
	<li> New/Changed
	<ul>
	<li> Added Pentium 4 (Prescott) instructions to inline assembler.
	</ul>
<ul>
</ul>
	<li> Bug fixes
	<ul>
	<li> Fixed several obscure problems with deeply nested preprocessor
	macro expansions.
	<li> Fixed bad code gen for PEXTRW instruction.
	<li> Fixed C++98 14.5.2-5
	<li> Fixed some problems with member template function
	explicit specializations.
	<li> Fixed problems with operator overloads as template
	member functions.
	<li> Fixed problem with deeply nested :: typedefs.
	<li> Corrected partial ordering problem with value parameters.
	<li> Fixed int[array] bug in C compiler.
	<li> Fixed Internal error: func 281
	<li> Fixed problem with converting struct to int inside [].
	</ul>
<ul>
</ul>
</ul>


<hr><!-- ======================================================= -->
<h3><a name="new842">WHAT'S NEW FOR C/C++ 8.42</a></h3>

<small><i>Mar 2, 2005</i></small>

<ul>
	<li> New/Changed
	<ul>
	<li> io.h's tell() is now an inline function, rather than a macro,
	for C++.
	<li> Added <a href="http://www.digitalmars.com/ctg/sc.html#dashCapHCapH">
	<b>-HH<i>filename</i></b></a> switch to <b>dmc.exe</b>.
	<li> Added <a href="http://www.digitalmars.com/ctg/sc.html#dashCapHCapP">
	<b>-HP<i>nn</i></b></a> switch to <b>dmc.exe</b>.
	</ul>
<ul>
</ul>
	<li> Bug fixes
	<ul>
	<li> Fixed internal error type 600
	<li> Changed unmangled output of constants from hex to decimal
	<li> Fixed spurious "Error: no type for argument" error
	<li> Fixed template partial specialization for typedef class
	members
	<li> Fixed function overloading bug with ...
	<li> Fixed function overloading bug with user defined conversions
	<li> Fixed pretty printing of arrays of consts
	<li> Fixed problem with user defined conversions coupled with
	some forms of class upcasting.
	<li> Fixed bug overloading non-const references to different types.
	</ul>
<ul>
</ul>
</ul>


<hr><!-- ======================================================= -->
<h3><a name="new841">WHAT'S NEW FOR C/C++ 8.41</a></h3>

<small><i>Sep 5, 2004</i></small>

<ul>
	<li> New/Changed
	<ul>
	<li> Added C99 struct and array designated initializers.
	<li> For C++, warning 11 is now always an error.
	<li> For C++, void* is no longer implicitly convertible to other
	pointer types.
	<li> Added wmem* C99 functions.
	</ul>
<ul>
</ul>
	<li> Bug fixes
<ul>
	<li> Fixed sscanf bug with end of string.
	<li> Quotes, spaces and tabs now allowed in path of -I switch.
	<li> Fixed problem with backwards branch on long double comparison.
	<li> Fixed implib bug where missing LIBRARY statement would cause
	crash.
	<li> Fixed internal error cg87 279.
	<li> Fixed internal error cg87 313.
	<li> Fixed -A bug with dm\stlport\stlport\config\stl_dm.h.
	<li> Fixed obscure crasher with delete[] on classes with
	constructor but no destructor.
	<li> Fixed dllexport on global pointer declarations.
	<li> Fixed template default parameter bug with Range classes.
	<li> Fixed &gt;&gt;= sign problem.
	<li> Fixed outp() codegen problem with register variables.
	<li> Fixed dm\include\win32\wownt16.h so it works with C++.
	<li> Fixed internal error ph 1116.
	<li> Fixed partial specialization bug with class templates
	and value parameters.
	<li> Fixed whitespace bug with empty macro expansion.
	<li> Fixed #line followed by macro.
	<li> Fixed name mangling for array of const.
	<li> Fixed bug with typeid(test&lt;bool const volatile[2]&gt;);
	<li> Fixed erroneous code generation within sizeof expressions.
	<li> Fixed partial specialization ambiguity with template template
	parameters.
	<li> Fixed incorrect parsing of &gt; inside template sizeof.
	<li> Fixed problem with user defined conversion to bool.
</ul>
</ul>


<hr><!-- ======================================================= -->
<h3><a name="new840">WHAT'S NEW FOR C/C++ 8.40</a></h3>

<small><i>Feb 20, 2004</i></small>

<ul>
	<li> New/Changed
	<ul>
	</ul>
<ul>
</ul>
	<li> Bug fixes
<ul>
	<li> Fixed protected access problem with wxWindows.
	<li> Fixed recursion bug in strpbrk().
	<li> Fixed MI bug with function overloading.
</ul>
</ul>


<hr><!-- ======================================================= -->
<h3><a name="new839">WHAT'S NEW FOR C/C++ 8.39</a></h3>

<small><i>Feb 12, 2004</i></small>

<ul>
	<li> New/Changed
	<ul>
		<li> Added switches
		<a href="ctg/sc.html">-A89, -A90, -A94, -A95, -A99</a>
		for various values of
		<a href="ctg/predefined.html">__STDC_VERSION__</a>
		and standard C conformance.

		<li> Added functions <b>fwide</b>, <b>isblank</b>,
		<b>vfscanf</b>, <b>vscanf</b>, <b>vsscanf</b>,
		<b>vsnprintf</b>, <b>_Exit</b>, <b>lldiv</b>,
		<b>atoll</b>, <b>ilogb</b>, <b>logb</b>, <b>cbrt</b>,
		<b>exp2</b>, <b>erf</b>, <b>erfc</b>.

		<li> Added C99 formats to strftime, wcsftime.

		<li> Functions in fenv.h now return int, not void.

		<li> Changed _stprintf in \dm\include\tchar.h to map
		to sprintf and swprintf.

		<li> Removed "angle bracket hack" where &gt;&gt; token
		was interpreted as two greater than tokens to close a
		nested template argument list.

		<li> Member operator delete[] is now recognized.

		<li> Unnamed template parameters now allowed.

		<li> Implemented surrogate call functions.

		<li> Implemented TC1 issue #1.

		<li> Per C++98, typedef names can no longer appear
		after struct, class, union or enum.

		<li> Implemented some aspects of dependent/independent name
		lookup.

		<li> Fixed return value of fesetround().
	</ul>
<ul>
</ul>
	<li> Bug fixes
<ul>
	<li> Fixed values of LDBL_MAX_EXP and LDBL_MIN_EXP in float.h.
	<li> Fixed range problems with some long double math functions.
	<li> USHRT_MAX in limits.h is now signed.
	<li> ferror now shows error for a read of a file opened for write.
	<li> Updated asctime format to C99.
	<li> wcstok now correctly has 3 parameters.
	<li> Fixed vswprintf() signature.
	<li> Fixed Internal error: cgcod 1459.
	<li> Fixed Internal error: cod2 410.
	<li> Fixed Internal error: go 237.
	<li> Fixed Internal error: cgcs 213.
	<li> Fixed problem with spaces in preprocessor concatenations.
	<li> Tightened private/protected access checks.
	<li> Tightened error checking for templates.
	<li> Did a sweep through the C++98 spec, fixing several
	obscure issues.
</ul>
</ul>


<hr><!-- ======================================================= -->
<a name="new838"><h3>WHAT'S NEW FOR C/C++ 8.38</h3></a>

<small><i>Nov 30, 2003</i></small>

<ul>
	<li> New/Changed
<ul>
	<li> Added __BASE_FILE__ predefined macro.
	<li> Source files not ending in newline are now allowed with
	C++ and -A (but are not for C and -A).
	<li> Now accepts \u and \U universal character names in identifiers.
	<li> Added <b>log2</b> functions.
</ul>
	<li> Bug fixes
<ul>
	<li> Template functions now inlined.
	<li> Fixed destructor call problem in virtual base initializer list.
	<li> Inherited exception specifications now checked for equivalence.
	<li> Fixed problem with ldexpl() and cosh().
	<li> Fixed optimizer peephole problem.
	<li> Fixed problem with outlined nested struct functions inside class template.
	<li> Fixed a couple of recursive macro expansion problems.
	<li> Fixed problem with //* comment following #else or #endif with -A.
	<li> Fixed problem with multiply defined local statics in inline
	functions with constructors.
	<li> Fixed obscure name lookup cases.
	<li> Fixed parsing problem with default template template parameters.
	<li> T can now be cast to T volatile&amp;.
	<li> Fixed accuracy problem with log10t().
</ul>
</ul>


<hr><!-- ======================================================= -->
<a name="new837"><h3>WHAT'S NEW FOR C/C++ 8.37</h3></a>

<small><i>Oct 17, 2003</i></small>

<ul>
<ul>
	<li> Fixed another problem with statics.
	<li> Fixed several problems with templates discovered by Bruce Eckel.
	<li> Fixed problem where nested class functions inside class templates
	sometimes did not get expanded inline properly.
	<li> Fixed problem with member function pointers of templated type
	inside template parameter list.
	<li> Added support for template-template-parameters.
	<li> C++ alternate keywords are now always enabled,
	instead of just with <b>-A</b>.
	<li> Fixed problems with friend scopes and multiple initializations
	of template statics.
	<li> Removed default support of \dm\stl, as only \dm\stlport\stlport
	will continue to be supported.
</ul>
</ul>


<hr><!-- ======================================================= -->
<a name="new836"><h3>WHAT'S NEW FOR C/C++ 8.36</h3></a>

<small><i>Sep 8, 2003</i></small>

<ul>
<ul>
	<li> Fixed problem with statics introduced by 8.35.
	<li> More Boost issues fixed.
	<li> VLA's with destructors now give proper error message.
	<li> Fixed problem with iostream files.
</ul>
</ul>


<hr><!-- ======================================================= -->
<a name="new835"><h3>WHAT'S NEW FOR C/C++ 8.35</h3></a>

<small><i>Aug 22, 2003</i></small>

<ul>
<ul>
	<li> Fixed problem with "bad type index" messages from the linker.
	This would sometimes happen if debug compiles, namespaces, and
	precompiled headers were used together.
	<li> Fixed problem with needing to #include &lt;typeinfo.h&gt;
	before &lt;exception&gt;.
	<li> Removed the _ prefixed long double names from math.h.
	<li> Now issues an error on negative array dimensions.
	<li> Fixed numerous issues with compiling Boost.
	<li> Fixed preprocessor problem with F. Tydeman's tests.
	<li> Fixed nanl() and copysignl().
	<li> Fixed bug with redefinitions of statics.
	<li> Fixed internal error out 637.
	<li> Fixed internal error type 149.
	<li> Upgraded to STLsoft 1.6.5.
</ul>
<li> Make
<ul>
	<li> Comment lines are now removed before \ line splicing (thanks,
	Matthew).
	<li> Command lines can be much longer now.
</ul>
</ul>


<hr><!-- ======================================================= -->
<a name="new834"><h3>WHAT'S NEW FOR C/C++ 8.34</h3></a>

<small><i>Jun 1, 2003</i></small>

<ul>
	<li> Added STLsoft libraries; see \dm\stlsoft\readme\readme.txt.
	<li> Fixed numerous template problems.
	<li> Fixed several enum promotion problems.
	<li> Fixed problem with bringing ?: to common type.
	<li> Fixed problem with large stack frames.
	<li> Fixed argument reversal on movq2dq inline asm opcode.
	<li> Changed arguments (added count) to swprintf() and
	vswprintf() for compatibility with C99. This can break
	existing code.
	<li> Added 8087 opcodes feni, fneni, fdisi, and fndisi.
	<li> Fixed -A problems with stdlib.h and string.h.
	<li> type_info::before() is now const per C++98.
	<li> Fixed case insensitivity problem in RegExp.
	<li> Added standard headers &lt;exception&gt; and &lt;typeinfo&gt;
	per C++98.
	This required a rebuild of the stlport libraries and DLLs.
</ul>


<hr><!-- ======================================================= -->
<a name="new833"><h3>WHAT'S NEW FOR C/C++ 8.33</h3></a>

<small><i>Mar 18, 2003</i></small>

<ul>
	<li> Addes support for <tt>::template</tt> syntax.
	<li> Fixed numerous template problems.
	<li> Implemented hypotl().
	<li> Implemented frexpl().
	<li> ldexp() is now builtin to the compiler.
	<li> Fixed some problems compiling Boost.
	<li> Fixed some problems with template argument deduction.
	<li> Fixed rare case of loss of precision with long doubles.
	<li> Fixed problem with 16 bit DOS libraries and 8088 PC/XT.
</ul>


<hr><!-- ======================================================= -->
<a name="new832"><h3>WHAT'S NEW FOR C/C++ 8.32</h3></a>

<small><i>Jan 4, 2003</i></small>

<ul>
	<li> Fixed internal error cg87 2490.
	<li> Fixed gp fault for nested template expansions with non-type
	args.
	<li> Added predefined macro <b>__DMC_VERSION_STRING__</b>.
	<li> Implemented boolean conversions per C++98 4.12.
	<li> Upgraded namespace support to C++98.
	<li> Implemented overloading by enum.
	<li> Implemented Argument Dependent Lookup.
	<li> Implemented friend namespace qualified classes.
	<li> Fixed operator bool conversions.
	<li> C99 <b>restrict</b> is now always on for C compiling.
	<li> C99 dynamic sizeof works.
	<li> Fixed numerous bugs with namespaces and templates.
	<li> Redid how macro expansion worked to bring it in line with C99.
	This can break existing code.
	<li> operator-&gt;() can now accept any return type.
	<li> Added \dm\include\wctype.h.
	<li> Implemented template explicit instantiation.
	<li> Implemented _finddata_t, _findfirst, _findnext, _findclose.
	<li> Fixed obscure crash bug in exception unwinding.
	<li> Upgraded STLport to reflect improved compiler.
</ul>


<hr><!-- ======================================================= -->
<a name="new831"><h3>WHAT'S NEW FOR C/C++ 8.31</h3></a>

<small><i>Oct 17, 2002</i></small>

<ul>
<li> Bugs fixed
<ul>
	<li> Fixed bug with nested class member templates.
	<li> Fixed bug with inline asm and LGDT/LIDT operand matching.
</ul>
<li> Make 5.02
<ul>
	<li> Now accepts <b>~</b> rule flag.
	<li> Command line length increased from 127 to 996.
</ul>
</ul>


<hr><!-- ======================================================= -->
<a name="new830"><h3>WHAT'S NEW FOR C/C++ 8.30</h3></a>

<small><i>Oct 8, 2002</i></small>

<ul>
<li> C
<ul>
	<li> <tt>static</tt> and <i>type-qualifier-list</i> now supported for
	     array dimension per C99 6.7.5.2.
	<li> Variable length arrays (VLAs) per C99 6.7.5.2 now implemented.
	<li> Implemented declarations in <i>clause-I</i> of <tt>for</tt>
	statement per C99 6.8.5.3.
	<li> Implemented mixing statements and declarations per
	C99 6.8.2-1.
	<li> Implemented implicit <tt>return 0;</tt> from <tt>main()</tt>
	per C99 5.1.2.2.3.
	<li> Updated fenv.h functions per C99 7.6.
</ul>
<li> C++
<ul>
	<li> Extended C++ with support for array declarations per C99 6.7.5.2.
	<li> Added type_info to typeinfo.h.
</ul>
<li> C and C++
<ul>
	<li> __declspec(import) now works with DOSX (-mx) memory model by
	generating an extra level of indirection like under Win32.
</ul>
<li> Bugs fixed
<ul>
	<li> Fixed internal error cgcod 2347.
	<li> Fixed internal error cgcod 1402.
	<li> Fixed internal error cg87 268.
	<li> Fixed internal error exp2 121.
	<li> Fixed internal error newman 963.
	<li> Fixed problem with template overload resolution.
	<li> Fixed forward template instantiation bug.
	<li> Fixed partial ordering with constants.
</ul>
</ul>


<hr><!-- ======================================================= -->
<a name="new829"><h3>WHAT'S NEW FOR C/C++ 8.29</h3></a>

<small><i>Jul 31, 2002</i></small>

<ul>
<li> C++
<ul>
<li> Implemented member template functions.
<li> Implemented member template classes.
<li> Implemented class template partial specializations.
<li> Implemented partial ordering of class template specializations.
<li> Implemented class template explicit specializations.
<li> Implemented template friends.
<li> Implemented new C++ 98 for statement scoping rules. This
     can be disabled with <b>-A-</b> (for backwards compatibility with
     old code), and then re-enabled with <b>-As</b>.
<li> For C++, changed 3rd operand of conditional operator from
     a conditional-expression to an assignment-expression.
     There is no switch to revert to the old behavior.
<li> Operator <tt>delete</tt> can now take cv-qualified pointers.
<li> <tt>main()</tt> now defaults to <tt>return 0;</tt> if no return
     is specified.
<li> Implemented function try blocks.
<li> Function templates instantiations that match non-template function
     declarations are now distinct functions. This can break some existing
     code, but the source fixes are worth doing to be standard compliant.
     Function template instantiations
     now include the template-argument-list as part of the function signature.
<li> Added <b>-wc</b> switch which warns on every occurance of a C style
     cast which should be replaced with the appropriate C++ style cast.
<li> Mangled names can now be considerably longer.
<!-- <li> Operator functions can now be overloaded based on enum types. -->
<li> Added STLport 4.5.3.
<li> Fixed el 2005 bug
</ul>
<li> C and C++
<ul>
<li> Implemented universal character names for strings and character literals.
<li> Fixed iasm 2585 bug
<li> Fixed error parsing REP MOVSD/CMPSD instructions
<li> Unrecognized preprocessing directives are now ignored in false
     conditionals (previously, an error was issued). <b>-A</b> will
     cause them to be an error.
<li> Fixed problem with -s stack probes in 16 bit code.
<li> Non-existing directories are now created as necessary when
     writing output files. This is convenient when writing .obj files
     to temporary directories.
</ul>
</ul>

<hr><!-- ======================================================= -->
<a name="new828"><h3>WHAT'S NEW FOR C/C++ 8.28</h3></a>

<small><i>May 22, 2002</i></small>

<ul>
<li> Added empty base class optimization.
<li> Added -Jb compiler switch to disable empty base class optimization
	for compatibility with code compiled with earlier compilers.
<li> Fixed cgobj 3034 bug
<li> Fixed cg87 256 bug
<li> Added:<br>
	<tt>#pragma DMC mfc</tt><br>
	for compatibility with MFC 4.2.
<li> Added -Aa- for compatibility with MFC 4.2.
<li> Empty array members of structs, such as:<br>
	char string[];<br>
     are now aligned based on the array subtype, rather
     than the widest type.
<li> Fixed bug with unsigned to double conversion.
<li> Fixed problem with handle passed to DllMain().
</ul>

<hr><!-- ======================================================= -->
<a name="new827"><h3>WHAT'S NEW FOR C/C++ 8.27</h3></a>

<small><i>Mar 6, 2002</i></small>

<ul>
<li> Renamed dm\include\strstrea.h to dm\include\strstream.h
<li> Fixed problem with disp_cursorcol and standout mode in win32 version
<li> Fixed bug with inline asm and copy propagation
<li> Fixed eh 683 bug
<li> Fixed cod1 1278 bug
<li> Fixed cg87 217 bug
<li> Now aligns double autos for faster floating point execution
<li> Added inline assembler support for Intel SSE and SSE2 instructions
<li> Added inline assembler support for AMD 3DNOW! instructions
<li> Added new instructions to OBJ2ASM disassembler
</ul>

<hr><!-- ======================================================= -->
<a name="new826"><h3>WHAT'S NEW FOR C/C++ 8.26</h3></a>

<small><i>Jan 23, 2002</i></small>

<ul>
<li> Added \dm\include\zmouse.h
<li> Fixed bug in float.h
<li> Improved code generation for long long's.
<li> Fixed long double conversions and unsigned long long's.
<li> Fixed tentative definition bug.
</ul>

<hr><!-- ======================================================= -->
<a name="new825"><h3>WHAT'S NEW FOR C/C++ 8.25</h3></a>

<small><i>Dec 14, 2001</i></small>

<ul>
<li> Added MicroEmacs text editor.
<li> Fixed IDDE Resource Editor.
<li> Fixed startup code to be compatible with D.
</ul>

For C:
<ul>
<li> Fixed bugs with 16 bit code generation.
</ul>

<hr><!-- ======================================================= -->
<a name="new823"><h3>WHAT'S NEW FOR C/C++ 8.23</h3></a>

For C++:
<ul>
<li> Fixed <b>eh 682</b> bug.
<li> Fixes for problems with template instantiation and exception handling.
</ul>

For C:
<ul>
<li> Fixed problems with C, -A, preprocessor, and //.
<li> Fixed dos_setdrive() bug for win32.
<li> Fix for _inpw() and _outpw() for DOSX.
</ul>

<hr><!-- ======================================================= -->
<a name="new822"><h3>WHAT'S NEW FOR C/C++ 8.22</h3></a>

10/28/01
<p>

For C:
<ul>
<li> Increased max string length.
<li> Fixed cg87 263 error.
</ul>

For C++:
<ul>
<li> Fixed bug with -D_MT and STL.
<li> Fixed template expansion bug with array constructors.
</ul>

STL:
<ul>
<li> Fixed stl_config.h conflict with windows.h
</ul>

Library:
<ul>
<li> Fixed bug in _kbhit() for Win32.
</ul>

<hr><!-- ======================================================= -->
<a name="new820"><h3>WHAT'S NEW FOR C/C++ 8.20</h3></a>

For C++:
<ul>
<li> Added SGI STL 3.3. Numerous fixes to support it.
<li> Templates are now instantiated only when semantically required,
rather than whenever referred to.
<li> Added header files <tt>cassert, cctype, cerrno, cfloat, ciso646,
climits, clocale, cmath, csetjmp, csignal, cstdarg, cstddef, cstdio,
cstdlib, cstring, ctime, cwchar, cwctype, new</tt>.
<li> Fixed C++ declarations for <tt>strchr()</tt>, etc., per C++98 21.4.
<li> Fixed warnings about 0 sized structs used before set.
<li> Fixed default constructor bug with <tt>new(p) char()</tt>.
<li> Fixed unused operator-&gt;() expansion inside template spurious error.
<li> In-class static const integral initializers now supported.
<li> Fixed default template parameter bug.
</ul>

<hr><!-- ======================================================= -->
<a name="new81e"><h3>WHAT'S NEW FOR C/C++ 8.1e</h3></a>

For C++:
<ul>
<li><b>-Ab</b> and <b>-Aw</b> are now always on
    (meaning that <tt>bool</tt> and <tt>wchar_t</tt>
    are real types, not typedefs).
    <span style="color:red">Warning:</span> This can break existing code.
<li><b>-Aa</b> is now always on
    (meaning that <tt>operator new[]</tt> and <tt>operator delete[]</tt>
     are separately overloadable)
    <span style="color:red">Warning:</span> This can break existing code.
<li><i>parameter-declarations</i> now allowed in function template
    <i>template-parameter-list</i>.
<li><tt>typename</tt> can now appear in <i>template-parameter</i>
    instead of <tt>class</tt>.
<li>Explicit template function <i>template-arguments</i> implemented.
<li>Partial ordering of function templates implemented.
<li><i>elaborated-type-specifier</i> (i.e. <tt>typename</tt>) implemented.
<li><tt>mutable</tt> implemented.
<li><tt>explicit</tt> implemented.
</ul>

<hr><!-- ======================================================= -->
<a name="new81d"><h3>WHAT'S NEW FOR C/C++ 8.1d</h3></a>

<ul>
<li>Fixed code gen bug with <b>-Ab</b>.
<li>Fixed name mangling with complex floating point types.
<li>Fixed code gen bug with complex floating point types.
<li>stdlib.h now compiles with <b>-A</b>.
<li>Added <a href="rtl/util.html">util.h</a>.
</ul>

<hr><!-- ======================================================= -->
<a name="new81c"><h3>WHAT'S NEW FOR C/C++ 8.1c</h3></a>

<ul>
<li><a href="rtl/regexp.html">Regular Expressions</a> now added to runtime library.
<li>Fixed code gen bugs with __interrupt functions.
<li>rint functions are now inlined by the compiler.
<li>fabsl and sqrtl are now inlined by the compiler.
<li>Fixed bug with /= for long doubles.
<li>Fixed long long support in library.
<li>Improved long double support in library.
</ul>

<hr><!-- ======================================================= -->
<a name="new81A"><h3>WHAT'S NEW FOR C/C++ 8.1A</h3></a>

<ul>
<li>Name mangling for type bool is changed from _X to _N, in order
to be more compatible with VC.
<li>Literal float support has now been brought in line with ANSI
C99.
<li>Floating point constants for other than static initializations are
not folded if the folding would result in any exception flags being
raised. This is per C99. To always fold the constants anyway, use the
-ff (fast float) flag.
<li>Fixed problems with hex long doubles.
</ul>

<hr><!-- ======================================================= -->
<a name="new818"><h3>WHAT'S NEW FOR C/C++ 8.18</h3></a>

<ul>
<li> Hex floats no longer turned off by -A.
<li> Long longs no longer turned off by -A.
<li> // comments in C no longer turned off by -A.
<li> The default CPU target is now the Pentium Pro (-6), not the Pentium.
</ul>

<hr><!-- ======================================================= -->
<a name="new817"><h3>WHAT'S NEW FOR C/C++ 8.17</h3></a>

<ul>
<li> Fixed problem with dllexport on function pointers.
<li> Added gc.h
<li> Added Hans Boehm garbage collector to rtl
<li> Added long double, %a and %A support to printf for win32
</ul>

<hr><!-- ======================================================= -->
<a name="new816"><h3>WHAT'S NEW FOR C/C++ 8.16</h3></a>

<ul>
<li> Fixed 16 bit code gen bugs.
<li> Added iso646.h
<li> Added stdint.h
<li> Added stdbool.h
<li> Added va_copy() to stdarg.h
<li> Added isxxxx() floating point comparison macros to math.h
</ul>

<hr><!-- ======================================================= -->
<a name="new815"><h3>WHAT'S NEW FOR C/C++ 8.15</h3></a>

<ul>
<li> Fixed spurious syntax error compiling some MFC code.
</ul>

<hr><!-- ======================================================= -->
<a name="new813"><h3>WHAT'S NEW FOR C/C++ 8.13</h3></a>

<ul>
<li> <span style="color:red">Now with 32 bit <b>X32</b> DOS extender support!</span>
<li> Fixed code generator support for <b>X32</b>.
</ul>

<hr><!-- ======================================================= -->
<a name="new812"><h3>WHAT'S NEW FOR C/C++ 8.12</h3></a>

<ul>
<li> Changed <b>__i</b> keyword to <b>__imaginary</b> due to numerous conflicts
     with existing code.
</ul>

<hr><!-- ======================================================= -->
<a name="new810"><h3>WHAT'S NEW FOR C/C++ 8.10</h3></a>

<ul>
<li> Added support for <b>__restrict</b> pointer syntax.
<li> Added support for macros with variable &amp; blank argument lists per C99.
<li> Added support for <b>__func__</b> per C99 6.4.2.2.
<li> Added <a href="http://www.digitalmars.com/ctg/predefined.html">__FUNCTION__</a> predefined macro.
<li> Added <a href="http://www.digitalmars.com/ctg/predefined.html">__PRETTY_FUNCTION__</a> predefined macro.
<li> Fixed bug in <b>wcscmp()</b> for 0 length strings.
<li> <b>-Aa</b> switch to SC is now the default. There is no way to turn it off.
<li> Added <b>_Complex</b> and <b>_Imaginary</b> type support per C99.
<li> Renamed C++ complex class file <b>complex.h</b> to <b>oldcomplex.h</b>.
<li> Added new <b>complex.h</b> per C99.
<li> Added complex library functions per C99.
<li> Added <b>isinf()</b> per C99.
<li> Added <b>long double</b> support to <b>isxxx()</b> functions in <b>fp.h</b>.
</ul>

<hr><!-- ======================================================= -->
<a name="new80"><h3>WHAT'S NEW FOR C/C++ 8.0</h3></a>

<ul>
<li> Added <a href="http://www.digitalmars.com/ctg/predefined.html">__DMC__</a> predefined macro.
<li> Added <a href="http://www.digitalmars.com/ctg/sc#dswitch">-d switch</a> to generate make dependency information.
<li> Added <a href="http://www.digitalmars.com/ctg/debugstatement.html">debug statements</a>.
<li> Added <a href="http://www.digitalmars.com/ctg/debugstatement.html#debugdeclaration">debug declarations</a>.
<li> Added <a href="http://www.digitalmars.com/ctg/contract.html">Contract Programming</a> features.
<li> Added ability to <a href="http://www.digitalmars.com/ctg/html.html">embed C in HTML</a> files.
<li> Added native support for 80 bit <b>long doubles</b> (Win32 only).
<li> Added support for CPU bit instructions via functions in <b>bitops.h</b>.
<li> Switch <a href="#switch_mn">-mn</a> is now the default instead of <b>-ms</b>.
<li> 16 bit preprocessor <b>spp.exe</b> no longer supported - use <b>sppn.exe</b>.
</ul>

<hr><!-- ======================================================= -->
<a name="new76"><h3>WHAT'S NEW FOR C/C++ 7.6</h3></a>

<ul>
<li> Better Code Generation
<li> Merged C and C++ Compilers.
	They are now in the same executable. This saves disk space and testing
	time.
</ul>

<hr><!-- ======================================================= -->
<a name="new75"><h3>WHAT'S NEW FOR C/C++ 7.5</h3></a>
<dl>
<dt> Added MMX Extensions

	<dd> New Intel MMX instructions now supported by the inline assembler.

<dt> Added Support for Alternative Names

	<dd> With -A and the C++ compiler, the alternative representations
	in the standard 2.9 are now supported. In the future, they will
	become the default, so don't use the following names otherwise:
	and and_eq bitand bitor compl not
	not_eq or or_eq xor xor_eq

<dt> Added -B[e|f|g|j] switches

	<dd> See "Definitive list of SC switches" for how they work. 
	The SCMSGS environment variable and SC.INI setting is no 
	longer supported.

<dt> Added #elseif directive, with same semantics as #elif.

<dt> Changed overload resolution rules to reflect ANSI C++ standard changes
regarding integral promotions vs integral conversions.

<dt> Added namespaces

<dt> Added -g5 switch
	<dd> See "Definitive list of SC switches".

<dt> Added #pragma setlocale("locale")
	<dd> See "Pragmas supported by SC/SC++".

<dt> Added _CPPRTTI and _CPPUNWIND predefined macros
	<dd> See "Predefined macros".

<dt> Added New Keywords
	<dd> explicit, mutable, typename - but the semantics of them aren't
	implemented.

<dt> Added __unaligned Keyword
	<dd> For unaligned pointer support for PowerPC. Ignored for Intel
	compiler.

<dt> Added Pentium Pro Instructions to Inline Assembler and OBJ2ASM.
	<dd> Added new P6 instructions:
		CMOVcc
		FCMOVcc
		FCOMI
		FCOMIP
		FUCOMI
		FUCOMIP
		RDMPC

<dt> Added -ND switch
	<dd> See "DEFINITIVE LIST OF SC SWITCHES", 
	and _MT and _DLL in "PREDEFINED MACROS".

<dt> -NLlibfile
	<dd> Added this switch. See "DEFINITIVE LIST OF SC SWITCHES".

<dt> __wacrtused
<dt> __wacrtused_con
	<dd> Added these for use in Win32 UNICODE apps. See "ACRTUSED".
</dl>

  
	<!-- Google ad -->
	<script type="text/javascript"><!--
	/**/google_ad_client = "pub-5628673096434613";
	/**/google_ad_width = 728;
	/**/google_ad_height = 90;
	/**/google_ad_format = "728x90_as";
	/**/google_ad_channel ="";
	/**/google_page_url = document.location;
	//--></script>
	<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
	</script>

</div>






<div id="copyright">

Copyright &copy; 1997-2013 by Digital Mars &reg;, All Rights Reserved
 |
Page generated by <a href="http://www.digitalmars.com/d/2.0/ddoc.html">Ddoc</a>.
</div>

</body>
</html>

